[INFO] fetching crate sugar-money 0.1.38...
[INFO] fixing sugar-money-0.1.38 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate sugar-money 0.1.38 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate sugar-money 0.1.38
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate sugar-money 0.1.38
[INFO] tweaked toml for crates.io crate sugar-money 0.1.38 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate sugar-money 0.1.38 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate sugar-money 0.1.38 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 06ebf6e7844f24f18e47440c61638fe03a825b23c02cc5d2cdcd2027d4dcdc26
[INFO] running `Command { std: "docker" "start" "06ebf6e7844f24f18e47440c61638fe03a825b23c02cc5d2cdcd2027d4dcdc26", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "06ebf6e7844f24f18e47440c61638fe03a825b23c02cc5d2cdcd2027d4dcdc26" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "06ebf6e7844f24f18e47440c61638fe03a825b23c02cc5d2cdcd2027d4dcdc26", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "06ebf6e7844f24f18e47440c61638fe03a825b23c02cc5d2cdcd2027d4dcdc26" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling proc-macro2 v1.0.97
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling winnow v0.7.12
[INFO] [stderr]     Checking five8_core v0.1.2
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]     Checking solana-sanitize v2.2.1
[INFO] [stderr]     Checking solana-atomic-u64 v2.2.1
[INFO] [stderr]     Checking solana-decode-error v2.3.0
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]     Checking five8 v0.2.1
[INFO] [stderr]     Checking five8_const v0.1.4
[INFO] [stderr]    Compiling bs58 v0.5.1
[INFO] [stderr]    Compiling serde_json v1.0.142
[INFO] [stderr]     Checking solana-msg v2.2.1
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]     Checking solana-program-memory v2.3.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking qstring v0.7.2
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]     Checking solana-derivation-path v2.2.1
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]    Compiling rustls v0.23.31
[INFO] [stderr]     Checking solana-seed-derivable v2.2.1
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]     Checking solana-program-option v2.2.1
[INFO] [stderr]     Checking solana-precompile-error v2.2.2
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking crc32fast v1.5.0
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking brotli v8.0.1
[INFO] [stderr]     Checking iri-string v0.7.8
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]    Compiling libsecp256k1-core v0.2.2
[INFO] [stderr]     Checking crypto-mac v0.8.0
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling cc v1.2.32
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]     Checking hmac v0.8.1
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking hmac-drbg v0.3.0
[INFO] [stderr]    Compiling time-core v0.1.4
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]     Checking deranged v0.4.0
[INFO] [stderr]    Compiling time-macros v0.2.22
[INFO] [stderr]     Checking solana-time-utils v2.2.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking socket2 v0.6.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling libsecp256k1-gen-ecmult v0.2.1
[INFO] [stderr]    Compiling libsecp256k1-gen-genmult v0.2.1
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling libsecp256k1 v0.6.0
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking sha3 v0.10.8
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking pbkdf2 v0.11.0
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]     Checking solana-seed-phrase v2.2.1
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]    Compiling solana-version v2.3.7
[INFO] [stderr]     Checking solana-svm-feature-set v2.3.7
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking tinyvec v1.9.0
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling zstd-sys v2.0.15+zstd.1.5.7
[INFO] [stderr]     Checking gethostname v0.2.3
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking solana-native-token v2.3.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking ark-std v0.4.0
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]    Compiling quinn-udp v0.5.13
[INFO] [stderr]     Checking solana-measure v2.3.7
[INFO] [stderr]     Checking unicode-width v0.2.1
[INFO] [stderr]     Checking siphasher v1.0.1
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]    Compiling solana-perf v2.3.7
[INFO] [stderr]     Checking solana-rayon-threadlimit v2.3.7
[INFO] [stderr]     Checking solana-big-mod-exp v2.2.1
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]    Compiling quinn v0.11.8
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking lru-slab v0.1.2
[INFO] [stderr]     Checking rustc-hash v2.1.1
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]    Compiling borsh-derive-internal v0.10.4
[INFO] [stderr]    Compiling borsh-schema-derive-internal v0.10.4
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]     Checking spinning_top v0.3.0
[INFO] [stderr]     Checking rusticata-macros v4.1.0
[INFO] [stderr]     Checking humantime v2.2.0
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking futures-timer v3.0.3
[INFO] [stderr]     Checking no-std-compat v0.4.1
[INFO] [stderr]     Checking nonzero_ext v0.3.0
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]    Compiling cookie v0.17.0
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]     Checking unicode-normalization v0.1.24
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking psl-types v2.0.11
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking solana-define-syscall v2.3.0
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]     Checking anstyle-query v1.1.4
[INFO] [stderr]     Checking idna v0.3.0
[INFO] [stderr]     Checking async-lock v3.4.1
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking solana-validator-exit v2.2.1
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking env_filter v0.1.3
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking anstream v0.6.20
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking nu-ansi-term v0.50.1
[INFO] [stderr]     Checking uint v0.10.0
[INFO] [stderr]     Checking uuid v1.18.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]    Compiling asn1-rs-impl v0.1.0
[INFO] [stderr]    Compiling asn1-rs-derive v0.4.0
[INFO] [stderr]    Compiling ark-serialize-derive v0.4.2
[INFO] [stderr]    Compiling ark-ff-asm v0.4.2
[INFO] [stderr]    Compiling ark-ff-macros v0.4.2
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking ark-serialize v0.4.2
[INFO] [stderr]    Compiling anchor-derive-space v0.31.1
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling bytemuck_derive v1.10.1
[INFO] [stderr]    Compiling borsh-derive v1.5.7
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling solana-sdk-macro v2.2.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]     Checking curve25519-dalek v3.2.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]     Checking bytemuck v1.23.2
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking rustls-pki-types v1.12.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking aes-gcm-siv v0.11.1
[INFO] [stderr]     Checking rustls-webpki v0.103.4
[INFO] [stderr]     Checking merlin v3.0.0
[INFO] [stderr]     Checking webpki-roots v1.0.2
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling cfg_eval v0.1.2
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking safe_arch v0.9.2
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling spl-discriminator-syn v0.2.1
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling num_enum_derive v0.7.4
[INFO] [stderr]    Compiling serde_with_macros v3.14.0
[INFO] [stderr]     Checking asn1-rs v0.5.2
[INFO] [stderr]    Compiling spl-discriminator-derive v0.2.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking rustls-native-certs v0.8.1
[INFO] [stderr]     Checking regex v1.11.2
[INFO] [stderr]    Compiling dlopen2_derive v0.3.0
[INFO] [stderr]     Checking borsh v1.5.7
[INFO] [stderr]    Compiling spl-program-error-derive v0.5.0
[INFO] [stderr]     Checking wide v0.7.34
[INFO] [stderr]     Checking zerovec v0.11.4
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking dlopen2 v0.5.0
[INFO] [stderr]     Checking caps v0.5.5
[INFO] [stderr]     Checking webpki-roots v0.24.0
[INFO] [stderr]     Checking ark-ff v0.4.2
[INFO] [stderr]     Checking env_logger v0.9.3
[INFO] [stderr]     Checking Inflector v0.11.4
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling test-log-macros v0.2.18
[INFO] [stderr]     Checking num_enum v0.7.4
[INFO] [stderr]     Checking solana-logger v2.3.1
[INFO] [stderr]     Checking der-parser v8.2.0
[INFO] [stderr]     Checking oid-registry v0.6.1
[INFO] [stderr]     Checking test-log v0.2.18
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking x509-parser v0.14.0
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking fastbloom v0.9.0
[INFO] [stderr]     Checking rustls-platform-verifier v0.5.3
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking solana-hash v2.3.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking serde_bytes v0.11.17
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking ed25519 v1.5.3
[INFO] [stderr]     Checking serde-big-array v0.5.1
[INFO] [stderr]     Checking bytes v1.10.1
[INFO] [stderr]     Checking bv v0.11.1
[INFO] [stderr]     Checking solana-fee-calculator v2.2.1
[INFO] [stderr]     Checking solana-short-vec v2.2.1
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking solana-serde-varint v2.2.2
[INFO] [stderr]     Checking solana-sha256-hasher v2.3.0
[INFO] [stderr]     Checking ed25519-dalek v1.0.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking solana-cluster-type v2.2.1
[INFO] [stderr]     Checking solana-commitment-config v2.2.1
[INFO] [stderr]     Checking solana-inflation v2.2.1
[INFO] [stderr]     Checking solana-reward-info v2.2.1
[INFO] [stderr]     Checking serde_with v3.14.0
[INFO] [stderr]     Checking solana-signature v2.3.0
[INFO] [stderr]     Checking ed25519-dalek-bip32 v0.2.0
[INFO] [stderr]     Checking solana-keccak-hasher v2.2.1
[INFO] [stderr]     Checking solana-epoch-info v2.2.1
[INFO] [stderr]     Checking solana-serde v2.2.1
[INFO] [stderr]     Checking raw-cpuid v11.5.0
[INFO] [stderr]     Checking solana-blake3-hasher v2.2.1
[INFO] [stderr]     Checking solana-hard-forks v2.2.1
[INFO] [stderr]    Compiling anchor-lang-idl-spec v0.1.0
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking quinn-proto v0.11.12
[INFO] [stderr]     Checking solana-shred-version v2.2.1
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking solana-packet v2.2.1
[INFO] [stderr]     Checking jsonrpc-core v18.0.0
[INFO] [stderr]     Checking solana-curve25519 v2.3.7
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]     Checking solana-poh-config v2.2.1
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking tungstenite v0.20.1
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]    Compiling anchor-syn v0.31.1
[INFO] [stderr]    Compiling borsh-derive v0.10.4
[INFO] [stderr]    Compiling anchor-lang-idl v0.1.2
[INFO] [stderr]     Checking publicsuffix v2.3.0
[INFO] [stderr]     Checking cookie_store v0.20.0
[INFO] [stderr]     Checking quanta v0.12.6
[INFO] [stderr]     Checking borsh v0.10.4
[INFO] [stderr]     Checking governor v0.6.3
[INFO] [stderr]     Checking solana-pubkey v2.4.0
[INFO] [stderr]     Checking solana-borsh v2.2.1
[INFO] [stderr]     Checking kaigan v0.2.6
[INFO] [stderr]     Checking solana-instruction v2.3.0
[INFO] [stderr]     Checking solana-sdk-ids v2.2.1
[INFO] [stderr]     Checking spl-generic-token v1.0.1
[INFO] [stderr]     Checking solana-nonce v2.2.1
[INFO] [stderr]     Checking solana-rent-debits v2.2.1
[INFO] [stderr]     Checking solana-epoch-rewards-hasher v2.2.1
[INFO] [stderr]     Checking solana-sysvar-id v2.2.1
[INFO] [stderr]     Checking solana-epoch-schedule v2.2.1
[INFO] [stderr]     Checking solana-clock v2.2.2
[INFO] [stderr]     Checking solana-slot-hashes v2.2.1
[INFO] [stderr]     Checking solana-rent v2.2.1
[INFO] [stderr]     Checking solana-slot-history v2.2.1
[INFO] [stderr]     Checking solana-epoch-rewards v2.2.1
[INFO] [stderr]     Checking solana-last-restart-slot v2.2.1
[INFO] [stderr]     Checking ark-poly v0.4.2
[INFO] [stderr]     Checking solana-transaction-error v2.2.1
[INFO] [stderr]     Checking solana-program-error v2.2.2
[INFO] [stderr]     Checking solana-system-interface v1.0.0
[INFO] [stderr]     Checking solana-serialize-utils v2.2.1
[INFO] [stderr]     Checking solana-bincode v2.2.1
[INFO] [stderr]     Checking solana-stable-layout v2.2.1
[INFO] [stderr]     Checking solana-loader-v2-interface v2.2.1
[INFO] [stderr]     Checking solana-compute-budget-interface v2.2.2
[INFO] [stderr]     Checking spl-associated-token-account-client v2.0.0
[INFO] [stderr]     Checking solana-feature-set v2.2.5
[INFO] [stderr]     Checking agave-feature-set v2.3.7
[INFO] [stderr]     Checking solana-address-lookup-table-interface v2.2.2
[INFO] [stderr]     Checking solana-account-info v2.3.0
[INFO] [stderr]     Checking spl-discriminator v0.4.1
[INFO] [stderr]     Checking solana-program-pack v2.2.1
[INFO] [stderr]     Checking spl-program-error v0.7.0
[INFO] [stderr]     Checking solana-signer v2.2.1
[INFO] [stderr]     Checking solana-cpi v2.2.1
[INFO] [stderr]     Checking solana-instructions-sysvar v2.2.2
[INFO] [stderr]     Checking solana-program-entrypoint v2.3.0
[INFO] [stderr]     Checking solana-message v2.4.0
[INFO] [stderr]     Checking solana-vote-interface v2.2.6
[INFO] [stderr]     Checking solana-loader-v3-interface v5.0.0
[INFO] [stderr]     Checking solana-loader-v4-interface v2.2.1
[INFO] [stderr]     Checking solana-zk-sdk v2.3.7
[INFO] [stderr]     Checking solana-stake-interface v1.2.1
[INFO] [stderr]     Checking solana-keypair v2.2.3
[INFO] [stderr]     Checking spl-memo v6.0.0
[INFO] [stderr]     Checking ark-ec v0.4.2
[INFO] [stderr]     Checking solana-quic-definitions v2.3.1
[INFO] [stderr]     Checking solana-tls-utils v2.3.7
[INFO] [stderr]     Checking solana-offchain-message v2.2.1
[INFO] [stderr]     Checking solana-presigner v2.2.1
[INFO] [stderr]     Checking solana-secp256r1-program v2.2.4
[INFO] [stderr]     Checking solana-ed25519-program v2.2.3
[INFO] [stderr]     Checking solana-reserved-account-keys v2.2.2
[INFO] [stderr]     Checking solana-example-mocks v2.2.1
[INFO] [stderr]     Checking solana-fee-structure v2.3.0
[INFO] [stderr]     Checking solana-sysvar v2.3.0
[INFO] [stderr]     Checking solana-account v2.2.1
[INFO] [stderr]     Checking spl-token v8.0.0
[INFO] [stderr]     Checking solana-account-decoder-client-types v2.3.7
[INFO] [stderr]     Checking solana-feature-gate-interface v2.2.2
[INFO] [stderr]     Checking solana-transaction-context v2.3.7
[INFO] [stderr]     Checking solana-genesis-config v2.3.0
[INFO] [stderr]     Checking solana-nonce-account v2.2.1
[INFO] [stderr]    Compiling anchor-attribute-account v0.31.1
[INFO] [stderr]    Compiling anchor-attribute-constant v0.31.1
[INFO] [stderr]    Compiling anchor-derive-accounts v0.31.1
[INFO] [stderr]    Compiling anchor-derive-serde v0.31.1
[INFO] [stderr]    Compiling anchor-attribute-access-control v0.31.1
[INFO] [stderr]    Compiling anchor-attribute-program v0.31.1
[INFO] [stderr]     Checking spl-pod v0.5.1
[INFO] [stderr]     Checking spl-token-confidential-transfer-ciphertext-arithmetic v0.3.1
[INFO] [stderr]     Checking spl-token-confidential-transfer-proof-generation v0.4.1
[INFO] [stderr]    Compiling anchor-attribute-event v0.31.1
[INFO] [stderr]    Compiling anchor-attribute-error v0.31.1
[INFO] [stderr]     Checking solana-rent-collector v2.3.0
[INFO] [stderr]     Checking solana-secp256k1-program v2.2.3
[INFO] [stderr]     Checking solana-secp256k1-recover v2.2.1
[INFO] [stderr]     Checking solana-program v2.3.0
[INFO] [stderr]     Checking spl-type-length-value v0.8.0
[INFO] [stderr]     Checking spl-token-confidential-transfer-proof-extraction v0.3.0
[INFO] [stderr]     Checking spl-token-group-interface v0.6.0
[INFO] [stderr]     Checking spl-token-confidential-transfer-proof-extraction v0.4.1
[INFO] [stderr]     Checking solana-precompiles v2.2.2
[INFO] [stderr]     Checking spl-elgamal-registry v0.3.0
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking hyper v1.7.0
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking tokio-rustls v0.26.2
[INFO] [stderr]     Checking async-compression v0.4.27
[INFO] [stderr]     Checking solana-net-utils v2.3.7
[INFO] [stderr]     Checking solana-transaction v2.2.3
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking spl-tlv-account-resolution v0.10.0
[INFO] [stderr]     Checking spl-token-metadata-interface v0.7.0
[INFO] [stderr]     Checking ark-bn254 v0.4.0
[INFO] [stderr]     Checking spl-elgamal-registry v0.2.0
[INFO] [stderr]     Checking solana-config-program-client v0.0.2
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking anchor-lang v0.31.1
[INFO] [stderr]     Checking tokio-tungstenite v0.20.1
[INFO] [stderr]     Checking solana-transaction-status-client-types v2.3.7
[INFO] [stderr]     Checking solana-client-traits v2.2.1
[INFO] [stderr]     Checking solana-system-transaction v2.2.1
[INFO] [stderr]     Checking solana-bn254 v2.2.2
[INFO] [stderr]     Checking spl-transfer-hook-interface v0.10.0
[INFO] [stderr]     Checking tokio-test v0.4.4
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]     Checking spl-token-2022 v8.0.1
[INFO] [stderr]     Checking spl-token-2022 v9.0.0
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking solana-sdk v2.3.1
[INFO] [stderr]     Checking hyper-util v0.1.16
[INFO] [stderr]     Checking solana-rpc-client-types v2.3.7
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking reqwest v0.12.23
[INFO] [stderr]     Checking solana-account-decoder v2.3.7
[INFO] [stderr]     Checking spl-associated-token-account v7.0.0
[INFO] [stderr]     Checking solana-pubsub-client v2.3.7
[INFO] [stderr]     Checking solana-metrics v2.3.7
[INFO] [stderr]     Checking reqwest-middleware v0.4.2
[INFO] [stderr]     Checking solana-connection-cache v2.3.7
[INFO] [stderr]     Checking solana-rpc-client-api v2.3.7
[INFO] [stderr]     Checking solana-rpc-client v2.3.7
[INFO] [stderr]     Checking solana-transaction-metrics-tracker v2.3.7
[INFO] [stderr]     Checking solana-streamer v2.3.7
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking solana-thin-client v2.3.7
[INFO] [stderr]     Checking solana-tpu-client v2.3.7
[INFO] [stderr]     Checking solana-rpc-client-nonce-utils v2.3.7
[INFO] [stderr]     Checking solana-quic-client v2.3.7
[INFO] [stderr]     Checking solana-udp-client v2.3.7
[INFO] [stderr]     Checking solana-client v2.3.7
[INFO] [stderr]     Checking anchor-client v0.31.1
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking sugar-money v0.1.38 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/program/client.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/api/modules/websocket.rs:186:56
[INFO] [stdout]     |
[INFO] [stdout] 181 | /             tokio::select! {
[INFO] [stdout] 182 | |                 message = ws_receiver.next() => {
[INFO] [stdout]     | |                 -------
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 `message` calls a custom destructor
[INFO] [stdout]     | |                 `message` will be dropped later as of Edition 2024
[INFO] [stdout] 183 | |                     match message {
[INFO] [stdout] 184 | |                         Some(Ok(msg)) => {
[INFO] [stdout] 185 | |                             if let Err(e) = self.handle_message(msg).await {
[INFO] [stdout]     | |                                        -    ------------------------------
[INFO] [stdout]     | |                                        |    |                        |
[INFO] [stdout]     | |                                        |    |                        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |                                        |    |                        `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                        |    `__awaitee` calls a custom destructor
[INFO] [stdout]     | |                                        |    `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                        `e` calls a custom destructor
[INFO] [stdout]     | |                                        `e` will be dropped later as of Edition 2024
[INFO] [stdout] 186 | |                                 if let Some(handler) = self.error_handler.lock().await.as_ref() {
[INFO] [stdout]     | |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     | |                                                        |                         |
[INFO] [stdout]     | |                                                        |                         this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     | |                                                        |                         up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |                                                        |                         this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     | |                                                        |                         `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                                        this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     | |                                                        up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |                                                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     | |                                                        `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 189 | |                             }
[INFO] [stdout]     | |                             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...   |
[INFO] [stdout] 207 | |             }
[INFO] [stdout]     | |             -
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             `output` calls a custom destructor
[INFO] [stdout]     | |             `output` will be dropped later as of Edition 2024
[INFO] [stdout]     | |             `futures_init` calls a custom destructor
[INFO] [stdout]     | |             `futures_init` will be dropped later as of Edition 2024
[INFO] [stdout]     | |             `futures` calls a custom destructor
[INFO] [stdout]     | |             `futures` will be dropped later as of Edition 2024
[INFO] [stdout]     | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/sync/mutex.rs:963:1
[INFO] [stdout]     |
[INFO] [stdout] 963 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `output` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `message` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `message` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]     |
[INFO] [stdout] 773 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]     |
[INFO] [stdout] 773 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/sync/mutex.rs:963:1
[INFO] [stdout]     |
[INFO] [stdout] 963 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/api/modules/websocket.rs:185:45
[INFO] [stdout]     |
[INFO] [stdout] 181 | /             tokio::select! {
[INFO] [stdout] 182 | |                 message = ws_receiver.next() => {
[INFO] [stdout]     | |                 -------
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 `message` calls a custom destructor
[INFO] [stdout]     | |                 `message` will be dropped later as of Edition 2024
[INFO] [stdout] 183 | |                     match message {
[INFO] [stdout] 184 | |                         Some(Ok(msg)) => {
[INFO] [stdout] 185 | |                             if let Err(e) = self.handle_message(msg).await {
[INFO] [stdout]     | |                                        -    ^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     | |                                        |    |                        |
[INFO] [stdout]     | |                                        |    |                        this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     | |                                        |    |                        up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |                                        |    |                        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |                                        |    |                        `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                        |    this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     | |                                        |    up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |                                        |    `__awaitee` calls a custom destructor
[INFO] [stdout]     | |                                        |    `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                        `e` calls a custom destructor
[INFO] [stdout]     | |                                        `e` will be dropped later as of Edition 2024
[INFO] [stdout] 186 | |                                 if let Some(handler) = self.error_handler.lock().await.as_ref() {
[INFO] [stdout]     | |                                                        -------------------------------
[INFO] [stdout]     | |                                                        |                         |
[INFO] [stdout]     | |                                                        |                         this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     | |                                                        |                         `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     | |                                                        `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 190 | |                         }
[INFO] [stdout]     | |                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...   |
[INFO] [stdout] 207 | |             }
[INFO] [stdout]     | |             -
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             `output` calls a custom destructor
[INFO] [stdout]     | |             `output` will be dropped later as of Edition 2024
[INFO] [stdout]     | |             `futures_init` calls a custom destructor
[INFO] [stdout]     | |             `futures_init` will be dropped later as of Edition 2024
[INFO] [stdout]     | |             `futures` calls a custom destructor
[INFO] [stdout]     | |             `futures` will be dropped later as of Edition 2024
[INFO] [stdout]     | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]     |
[INFO] [stdout] 773 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `output` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `message` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `message` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]     |
[INFO] [stdout] 773 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]     |
[INFO] [stdout] 773 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/sync/mutex.rs:963:1
[INFO] [stdout]     |
[INFO] [stdout] 963 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/program/client.rs:113:27
[INFO] [stdout]     |
[INFO] [stdout] 113 |                     match rx.recv() {
[INFO] [stdout]     |                           ^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 114 |                         Ok(UnsubTask { key, sub }) => {
[INFO] [stdout]     |                                             ---
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `sub` calls a custom destructor
[INFO] [stdout]     |                                             `sub` will be dropped later as of Edition 2024
[INFO] [stdout] 115 |                             let _ = sub.send_unsubscribe();
[INFO] [stdout]     |                                     ----------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 120 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/solana-pubsub-client-2.3.7/src/pubsub_client.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | / impl<T> Drop for PubsubClientSubscription<T>
[INFO] [stdout] 146 | | where
[INFO] [stdout] 147 | |     T: DeserializeOwned,
[INFO] [stdout]     | |________________________^
[INFO] [stdout] note: `sub` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/solana-pubsub-client-2.3.7/src/pubsub_client.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | / impl<T> Drop for PubsubClientSubscription<T>
[INFO] [stdout] 146 | | where
[INFO] [stdout] 147 | |     T: DeserializeOwned,
[INFO] [stdout]     | |________________________^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/program/raydium/trading.rs:123:56
[INFO] [stdout]     |
[INFO] [stdout] 123 |                 while let Ok(UnsubTask { key, sub }) = rx.recv() {
[INFO] [stdout]     |                                               ---      ^^^^^^^^^
[INFO] [stdout]     |                                               |        |
[INFO] [stdout]     |                                               |        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                               |        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                               `sub` calls a custom destructor
[INFO] [stdout]     |                                               `sub` will be dropped later as of Edition 2024
[INFO] [stdout] 124 |                     info!(target:"ray", worker=%i, key=%key, "unsub-exec: send_unsubscribe() begin");
[INFO] [stdout] 125 |                     let _ = sub.send_unsubscribe();
[INFO] [stdout]     |                             ----------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 126 |                     info!(target:"ray", worker=%i, key=%key, "unsub-exec: send_unsubscribe() done");
[INFO] [stdout] 127 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/solana-pubsub-client-2.3.7/src/pubsub_client.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | / impl<T> Drop for PubsubClientSubscription<T>
[INFO] [stdout] 146 | | where
[INFO] [stdout] 147 | |     T: DeserializeOwned,
[INFO] [stdout]     | |________________________^
[INFO] [stdout] note: `sub` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/solana-pubsub-client-2.3.7/src/pubsub_client.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | / impl<T> Drop for PubsubClientSubscription<T>
[INFO] [stdout] 146 | | where
[INFO] [stdout] 147 | |     T: DeserializeOwned,
[INFO] [stdout]     | |________________________^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/program/client.rs:525:23
[INFO] [stdout]     |
[INFO] [stdout] 523 |             let mut picked: Option<PubsubClientSubscription<Response<UiAccount>>> = None;
[INFO] [stdout]     |                 ----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `picked` calls a custom destructor
[INFO] [stdout]     |                 `picked` will be dropped later as of Edition 2024
[INFO] [stdout] 524 |             loop {
[INFO] [stdout] 525 |                 match active.sub_rx.try_recv() {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 530 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/solana-pubsub-client-2.3.7/src/pubsub_client.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | / impl<T> Drop for PubsubClientSubscription<T>
[INFO] [stdout] 146 | | where
[INFO] [stdout] 147 | |     T: DeserializeOwned,
[INFO] [stdout]     | |________________________^
[INFO] [stdout] note: `picked` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/solana-pubsub-client-2.3.7/src/pubsub_client.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | / impl<T> Drop for PubsubClientSubscription<T>
[INFO] [stdout] 146 | | where
[INFO] [stdout] 147 | |     T: DeserializeOwned,
[INFO] [stdout]     | |________________________^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/program/raydium/trading.rs:318:68
[INFO] [stdout]      |
[INFO] [stdout]  282 | /                 select! {
[INFO] [stdout]  283 | |                     recv(stop_rx) -> _ => {
[INFO] [stdout]  284 | |                         info!(target:"ray", pool=%pool_id.to_string(), "worker: stop signal");
[INFO] [stdout]  285 | |                         break;
[INFO] [stdout] ...    |
[INFO] [stdout]  288 | |                     recv(rx_state) -> m0 => {
[INFO] [stdout]      | |                                       --
[INFO] [stdout]      | |                                       |
[INFO] [stdout]      | |                                       `m0` calls a custom destructor
[INFO] [stdout]      | |                                       `m0` will be dropped later as of Edition 2024
[INFO] [stdout]  289 | |                         match m0 {
[INFO] [stdout]  290 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                `resp` calls a custom destructor
[INFO] [stdout]      | |                                `resp` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  296 | |                                             if let Ok(mut pc) = pool_cache.lock() {
[INFO] [stdout]      | |                                                       ------    -----------------
[INFO] [stdout]      | |                                                       |         |
[INFO] [stdout]      | |                                                       |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      | |                                                       |         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                                       `pc` calls a custom destructor
[INFO] [stdout]      | |                                                       `pc` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | |                     recv(rx_a) -> m1 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m1` calls a custom destructor
[INFO] [stdout]      | |                                   `m1` will be dropped later as of Edition 2024
[INFO] [stdout]  311 | |                         match m1 {
[INFO] [stdout]  312 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      | |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  318 | |                                                 if let Ok(mut r) = reserve_a.lock() {
[INFO] [stdout]      | |                                                           -----    ^^^^^^^^^^^^^^^^
[INFO] [stdout]      | |                                                           |        |
[INFO] [stdout]      | |                                                           |        this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      | |                                                           |        up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      | |                                                           `r` calls a custom destructor
[INFO] [stdout]      | |                                                           `r` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  321 | |                                             }
[INFO] [stdout]      | |                                             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...    |
[INFO] [stdout]  330 | |                     recv(rx_b) -> m2 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m2` calls a custom destructor
[INFO] [stdout]      | |                                   `m2` will be dropped later as of Edition 2024
[INFO] [stdout]  331 | |                         match m2 {
[INFO] [stdout]  332 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      | |                                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  338 | |                                                 if let Ok(mut r) = reserve_b.lock() {
[INFO] [stdout]      | |                                                           -----
[INFO] [stdout]      | |                                                           |
[INFO] [stdout]      | |                                                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      | |                                                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  349 | |                 }
[INFO] [stdout]      | |                 -
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-channel-0.5.15/src/channel.rs:1150:1
[INFO] [stdout]      |
[INFO] [stdout] 1150 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `m0` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `resp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `pc` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `r` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/program/raydium/trading.rs:317:65
[INFO] [stdout]      |
[INFO] [stdout]  282 | /                 select! {
[INFO] [stdout]  283 | |                     recv(stop_rx) -> _ => {
[INFO] [stdout]  284 | |                         info!(target:"ray", pool=%pool_id.to_string(), "worker: stop signal");
[INFO] [stdout]  285 | |                         break;
[INFO] [stdout] ...    |
[INFO] [stdout]  288 | |                     recv(rx_state) -> m0 => {
[INFO] [stdout]      | |                                       --
[INFO] [stdout]      | |                                       |
[INFO] [stdout]      | |                                       `m0` calls a custom destructor
[INFO] [stdout]      | |                                       `m0` will be dropped later as of Edition 2024
[INFO] [stdout]  289 | |                         match m0 {
[INFO] [stdout]  290 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                `resp` calls a custom destructor
[INFO] [stdout]      | |                                `resp` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  296 | |                                             if let Ok(mut pc) = pool_cache.lock() {
[INFO] [stdout]      | |                                                       ------    -----------------
[INFO] [stdout]      | |                                                       |         |
[INFO] [stdout]      | |                                                       |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      | |                                                       |         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                                       `pc` calls a custom destructor
[INFO] [stdout]      | |                                                       `pc` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | |                     recv(rx_a) -> m1 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m1` calls a custom destructor
[INFO] [stdout]      | |                                   `m1` will be dropped later as of Edition 2024
[INFO] [stdout]  311 | |                         match m1 {
[INFO] [stdout]  312 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      | |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  317 | |                                             if let Ok(amount) = Self::unpack_token_amount(&owner_pk, &bytes) {
[INFO] [stdout]      | |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      | |                                                                 |
[INFO] [stdout]      | |                                                                 this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      | |                                                                 up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  318 | |                                                 if let Ok(mut r) = reserve_a.lock() {
[INFO] [stdout]      | |                                                           -----
[INFO] [stdout]      | |                                                           |
[INFO] [stdout]      | |                                                           `r` calls a custom destructor
[INFO] [stdout]      | |                                                           `r` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  322 | |                                         }
[INFO] [stdout]      | |                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...    |
[INFO] [stdout]  330 | |                     recv(rx_b) -> m2 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m2` calls a custom destructor
[INFO] [stdout]      | |                                   `m2` will be dropped later as of Edition 2024
[INFO] [stdout]  331 | |                         match m2 {
[INFO] [stdout]  332 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      | |                                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  338 | |                                                 if let Ok(mut r) = reserve_b.lock() {
[INFO] [stdout]      | |                                                           -----
[INFO] [stdout]      | |                                                           |
[INFO] [stdout]      | |                                                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      | |                                                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  349 | |                 }
[INFO] [stdout]      | |                 -
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]      |
[INFO] [stdout]  684 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]      |
[INFO] [stdout]  773 | impl Drop for Error {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-channel-0.5.15/src/channel.rs:1150:1
[INFO] [stdout]      |
[INFO] [stdout] 1150 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `m0` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `resp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `pc` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `r` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/program/raydium/trading.rs:338:68
[INFO] [stdout]      |
[INFO] [stdout]  282 | /                 select! {
[INFO] [stdout]  283 | |                     recv(stop_rx) -> _ => {
[INFO] [stdout]  284 | |                         info!(target:"ray", pool=%pool_id.to_string(), "worker: stop signal");
[INFO] [stdout]  285 | |                         break;
[INFO] [stdout] ...    |
[INFO] [stdout]  288 | |                     recv(rx_state) -> m0 => {
[INFO] [stdout]      | |                                       --
[INFO] [stdout]      | |                                       |
[INFO] [stdout]      | |                                       `m0` calls a custom destructor
[INFO] [stdout]      | |                                       `m0` will be dropped later as of Edition 2024
[INFO] [stdout]  289 | |                         match m0 {
[INFO] [stdout]  290 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                `resp` calls a custom destructor
[INFO] [stdout]      | |                                `resp` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  296 | |                                             if let Ok(mut pc) = pool_cache.lock() {
[INFO] [stdout]      | |                                                       ------    -----------------
[INFO] [stdout]      | |                                                       |         |
[INFO] [stdout]      | |                                                       |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      | |                                                       |         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                                       `pc` calls a custom destructor
[INFO] [stdout]      | |                                                       `pc` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | |                     recv(rx_a) -> m1 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m1` calls a custom destructor
[INFO] [stdout]      | |                                   `m1` will be dropped later as of Edition 2024
[INFO] [stdout]  311 | |                         match m1 {
[INFO] [stdout]  312 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      | |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  318 | |                                                 if let Ok(mut r) = reserve_a.lock() {
[INFO] [stdout]      | |                                                           -----
[INFO] [stdout]      | |                                                           |
[INFO] [stdout]      | |                                                           `r` calls a custom destructor
[INFO] [stdout]      | |                                                           `r` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  330 | |                     recv(rx_b) -> m2 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m2` calls a custom destructor
[INFO] [stdout]      | |                                   `m2` will be dropped later as of Edition 2024
[INFO] [stdout]  331 | |                         match m2 {
[INFO] [stdout]  332 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      | |                                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  338 | |                                                 if let Ok(mut r) = reserve_b.lock() {
[INFO] [stdout]      | |                                                           -----    ^^^^^^^^^^^^^^^^
[INFO] [stdout]      | |                                                           |        |
[INFO] [stdout]      | |                                                           |        this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      | |                                                           |        up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      | |                                                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      | |                                                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  341 | |                                             }
[INFO] [stdout]      | |                                             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...    |
[INFO] [stdout]  349 | |                 }
[INFO] [stdout]      | |                 -
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-channel-0.5.15/src/channel.rs:1150:1
[INFO] [stdout]      |
[INFO] [stdout] 1150 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `m0` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `resp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `pc` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `r` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/program/raydium/trading.rs:337:65
[INFO] [stdout]      |
[INFO] [stdout]  282 | /                 select! {
[INFO] [stdout]  283 | |                     recv(stop_rx) -> _ => {
[INFO] [stdout]  284 | |                         info!(target:"ray", pool=%pool_id.to_string(), "worker: stop signal");
[INFO] [stdout]  285 | |                         break;
[INFO] [stdout] ...    |
[INFO] [stdout]  288 | |                     recv(rx_state) -> m0 => {
[INFO] [stdout]      | |                                       --
[INFO] [stdout]      | |                                       |
[INFO] [stdout]      | |                                       `m0` calls a custom destructor
[INFO] [stdout]      | |                                       `m0` will be dropped later as of Edition 2024
[INFO] [stdout]  289 | |                         match m0 {
[INFO] [stdout]  290 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                `resp` calls a custom destructor
[INFO] [stdout]      | |                                `resp` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  296 | |                                             if let Ok(mut pc) = pool_cache.lock() {
[INFO] [stdout]      | |                                                       ------    -----------------
[INFO] [stdout]      | |                                                       |         |
[INFO] [stdout]      | |                                                       |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      | |                                                       |         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                                       `pc` calls a custom destructor
[INFO] [stdout]      | |                                                       `pc` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | |                     recv(rx_a) -> m1 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m1` calls a custom destructor
[INFO] [stdout]      | |                                   `m1` will be dropped later as of Edition 2024
[INFO] [stdout]  311 | |                         match m1 {
[INFO] [stdout]  312 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      | |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  318 | |                                                 if let Ok(mut r) = reserve_a.lock() {
[INFO] [stdout]      | |                                                           -----
[INFO] [stdout]      | |                                                           |
[INFO] [stdout]      | |                                                           `r` calls a custom destructor
[INFO] [stdout]      | |                                                           `r` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  330 | |                     recv(rx_b) -> m2 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m2` calls a custom destructor
[INFO] [stdout]      | |                                   `m2` will be dropped later as of Edition 2024
[INFO] [stdout]  331 | |                         match m2 {
[INFO] [stdout]  332 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      | |                                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  337 | |                                             if let Ok(amount) = Self::unpack_token_amount(&owner_pk, &bytes) {
[INFO] [stdout]      | |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      | |                                                                 |
[INFO] [stdout]      | |                                                                 this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      | |                                                                 up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  338 | |                                                 if let Ok(mut r) = reserve_b.lock() {
[INFO] [stdout]      | |                                                           -----
[INFO] [stdout]      | |                                                           |
[INFO] [stdout]      | |                                                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      | |                                                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  342 | |                                         }
[INFO] [stdout]      | |                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...    |
[INFO] [stdout]  349 | |                 }
[INFO] [stdout]      | |                 -
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]      |
[INFO] [stdout]  684 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]      |
[INFO] [stdout]  773 | impl Drop for Error {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-channel-0.5.15/src/channel.rs:1150:1
[INFO] [stdout]      |
[INFO] [stdout] 1150 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `m0` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `resp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `pc` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `r` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating examples/websocket_test.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/api/modules/websocket.rs:186:56
[INFO] [stdout]     |
[INFO] [stdout] 181 | /             tokio::select! {
[INFO] [stdout] 182 | |                 message = ws_receiver.next() => {
[INFO] [stdout]     | |                 -------
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 `message` calls a custom destructor
[INFO] [stdout]     | |                 `message` will be dropped later as of Edition 2024
[INFO] [stdout] 183 | |                     match message {
[INFO] [stdout] 184 | |                         Some(Ok(msg)) => {
[INFO] [stdout] 185 | |                             if let Err(e) = self.handle_message(msg).await {
[INFO] [stdout]     | |                                        -    ------------------------------
[INFO] [stdout]     | |                                        |    |                        |
[INFO] [stdout]     | |                                        |    |                        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |                                        |    |                        `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                        |    `__awaitee` calls a custom destructor
[INFO] [stdout]     | |                                        |    `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                        `e` calls a custom destructor
[INFO] [stdout]     | |                                        `e` will be dropped later as of Edition 2024
[INFO] [stdout] 186 | |                                 if let Some(handler) = self.error_handler.lock().await.as_ref() {
[INFO] [stdout]     | |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     | |                                                        |                         |
[INFO] [stdout]     | |                                                        |                         this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     | |                                                        |                         up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |                                                        |                         this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     | |                                                        |                         `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                                        this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     | |                                                        up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |                                                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     | |                                                        `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 189 | |                             }
[INFO] [stdout]     | |                             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...   |
[INFO] [stdout] 207 | |             }
[INFO] [stdout]     | |             -
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             `output` calls a custom destructor
[INFO] [stdout]     | |             `output` will be dropped later as of Edition 2024
[INFO] [stdout]     | |             `futures_init` calls a custom destructor
[INFO] [stdout]     | |             `futures_init` will be dropped later as of Edition 2024
[INFO] [stdout]     | |             `futures` calls a custom destructor
[INFO] [stdout]     | |             `futures` will be dropped later as of Edition 2024
[INFO] [stdout]     | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/sync/mutex.rs:963:1
[INFO] [stdout]     |
[INFO] [stdout] 963 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `output` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `message` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `message` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]     |
[INFO] [stdout] 773 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]     |
[INFO] [stdout] 773 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/sync/mutex.rs:963:1
[INFO] [stdout]     |
[INFO] [stdout] 963 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/api/modules/websocket.rs:185:45
[INFO] [stdout]     |
[INFO] [stdout] 181 | /             tokio::select! {
[INFO] [stdout] 182 | |                 message = ws_receiver.next() => {
[INFO] [stdout]     | |                 -------
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 `message` calls a custom destructor
[INFO] [stdout]     | |                 `message` will be dropped later as of Edition 2024
[INFO] [stdout] 183 | |                     match message {
[INFO] [stdout] 184 | |                         Some(Ok(msg)) => {
[INFO] [stdout] 185 | |                             if let Err(e) = self.handle_message(msg).await {
[INFO] [stdout]     | |                                        -    ^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     | |                                        |    |                        |
[INFO] [stdout]     | |                                        |    |                        this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     | |                                        |    |                        up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |                                        |    |                        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |                                        |    |                        `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                        |    this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     | |                                        |    up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |                                        |    `__awaitee` calls a custom destructor
[INFO] [stdout]     | |                                        |    `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                        `e` calls a custom destructor
[INFO] [stdout]     | |                                        `e` will be dropped later as of Edition 2024
[INFO] [stdout] 186 | |                                 if let Some(handler) = self.error_handler.lock().await.as_ref() {
[INFO] [stdout]     | |                                                        -------------------------------
[INFO] [stdout]     | |                                                        |                         |
[INFO] [stdout]     | |                                                        |                         this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     | |                                                        |                         `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     | |                                                        `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 190 | |                         }
[INFO] [stdout]     | |                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...   |
[INFO] [stdout] 207 | |             }
[INFO] [stdout]     | |             -
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             `output` calls a custom destructor
[INFO] [stdout]     | |             `output` will be dropped later as of Edition 2024
[INFO] [stdout]     | |             `futures_init` calls a custom destructor
[INFO] [stdout]     | |             `futures_init` will be dropped later as of Edition 2024
[INFO] [stdout]     | |             `futures` calls a custom destructor
[INFO] [stdout]     | |             `futures` will be dropped later as of Edition 2024
[INFO] [stdout]     | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]     |
[INFO] [stdout] 773 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `output` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `message` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `message` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]     |
[INFO] [stdout] 773 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]     |
[INFO] [stdout] 773 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/sync/mutex.rs:963:1
[INFO] [stdout]     |
[INFO] [stdout] 963 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/program/client.rs:113:27
[INFO] [stdout]     |
[INFO] [stdout] 113 |                     match rx.recv() {
[INFO] [stdout]     |                           ^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 114 |                         Ok(UnsubTask { key, sub }) => {
[INFO] [stdout]     |                                             ---
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `sub` calls a custom destructor
[INFO] [stdout]     |                                             `sub` will be dropped later as of Edition 2024
[INFO] [stdout] 115 |                             let _ = sub.send_unsubscribe();
[INFO] [stdout]     |                                     ----------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 120 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/solana-pubsub-client-2.3.7/src/pubsub_client.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | / impl<T> Drop for PubsubClientSubscription<T>
[INFO] [stdout] 146 | | where
[INFO] [stdout] 147 | |     T: DeserializeOwned,
[INFO] [stdout]     | |________________________^
[INFO] [stdout] note: `sub` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/solana-pubsub-client-2.3.7/src/pubsub_client.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | / impl<T> Drop for PubsubClientSubscription<T>
[INFO] [stdout] 146 | | where
[INFO] [stdout] 147 | |     T: DeserializeOwned,
[INFO] [stdout]     | |________________________^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/program/raydium/trading.rs:123:56
[INFO] [stdout]     |
[INFO] [stdout] 123 |                 while let Ok(UnsubTask { key, sub }) = rx.recv() {
[INFO] [stdout]     |                                               ---      ^^^^^^^^^
[INFO] [stdout]     |                                               |        |
[INFO] [stdout]     |                                               |        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                               |        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                               `sub` calls a custom destructor
[INFO] [stdout]     |                                               `sub` will be dropped later as of Edition 2024
[INFO] [stdout] 124 |                     info!(target:"ray", worker=%i, key=%key, "unsub-exec: send_unsubscribe() begin");
[INFO] [stdout] 125 |                     let _ = sub.send_unsubscribe();
[INFO] [stdout]     |                             ----------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 126 |                     info!(target:"ray", worker=%i, key=%key, "unsub-exec: send_unsubscribe() done");
[INFO] [stdout] 127 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/solana-pubsub-client-2.3.7/src/pubsub_client.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | / impl<T> Drop for PubsubClientSubscription<T>
[INFO] [stdout] 146 | | where
[INFO] [stdout] 147 | |     T: DeserializeOwned,
[INFO] [stdout]     | |________________________^
[INFO] [stdout] note: `sub` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/solana-pubsub-client-2.3.7/src/pubsub_client.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | / impl<T> Drop for PubsubClientSubscription<T>
[INFO] [stdout] 146 | | where
[INFO] [stdout] 147 | |     T: DeserializeOwned,
[INFO] [stdout]     | |________________________^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/program/client.rs:525:23
[INFO] [stdout]     |
[INFO] [stdout] 523 |             let mut picked: Option<PubsubClientSubscription<Response<UiAccount>>> = None;
[INFO] [stdout]     |                 ----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `picked` calls a custom destructor
[INFO] [stdout]     |                 `picked` will be dropped later as of Edition 2024
[INFO] [stdout] 524 |             loop {
[INFO] [stdout] 525 |                 match active.sub_rx.try_recv() {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 530 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/solana-pubsub-client-2.3.7/src/pubsub_client.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | / impl<T> Drop for PubsubClientSubscription<T>
[INFO] [stdout] 146 | | where
[INFO] [stdout] 147 | |     T: DeserializeOwned,
[INFO] [stdout]     | |________________________^
[INFO] [stdout] note: `picked` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/solana-pubsub-client-2.3.7/src/pubsub_client.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | / impl<T> Drop for PubsubClientSubscription<T>
[INFO] [stdout] 146 | | where
[INFO] [stdout] 147 | |     T: DeserializeOwned,
[INFO] [stdout]     | |________________________^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/program/raydium/trading.rs:318:68
[INFO] [stdout]      |
[INFO] [stdout]  282 | /                 select! {
[INFO] [stdout]  283 | |                     recv(stop_rx) -> _ => {
[INFO] [stdout]  284 | |                         info!(target:"ray", pool=%pool_id.to_string(), "worker: stop signal");
[INFO] [stdout]  285 | |                         break;
[INFO] [stdout] ...    |
[INFO] [stdout]  288 | |                     recv(rx_state) -> m0 => {
[INFO] [stdout]      | |                                       --
[INFO] [stdout]      | |                                       |
[INFO] [stdout]      | |                                       `m0` calls a custom destructor
[INFO] [stdout]      | |                                       `m0` will be dropped later as of Edition 2024
[INFO] [stdout]  289 | |                         match m0 {
[INFO] [stdout]  290 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                `resp` calls a custom destructor
[INFO] [stdout]      | |                                `resp` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  296 | |                                             if let Ok(mut pc) = pool_cache.lock() {
[INFO] [stdout]      | |                                                       ------    -----------------
[INFO] [stdout]      | |                                                       |         |
[INFO] [stdout]      | |                                                       |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      | |                                                       |         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                                       `pc` calls a custom destructor
[INFO] [stdout]      | |                                                       `pc` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | |                     recv(rx_a) -> m1 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m1` calls a custom destructor
[INFO] [stdout]      | |                                   `m1` will be dropped later as of Edition 2024
[INFO] [stdout]  311 | |                         match m1 {
[INFO] [stdout]  312 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      | |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  318 | |                                                 if let Ok(mut r) = reserve_a.lock() {
[INFO] [stdout]      | |                                                           -----    ^^^^^^^^^^^^^^^^
[INFO] [stdout]      | |                                                           |        |
[INFO] [stdout]      | |                                                           |        this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      | |                                                           |        up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      | |                                                           `r` calls a custom destructor
[INFO] [stdout]      | |                                                           `r` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  321 | |                                             }
[INFO] [stdout]      | |                                             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...    |
[INFO] [stdout]  330 | |                     recv(rx_b) -> m2 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m2` calls a custom destructor
[INFO] [stdout]      | |                                   `m2` will be dropped later as of Edition 2024
[INFO] [stdout]  331 | |                         match m2 {
[INFO] [stdout]  332 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      | |                                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  338 | |                                                 if let Ok(mut r) = reserve_b.lock() {
[INFO] [stdout]      | |                                                           -----
[INFO] [stdout]      | |                                                           |
[INFO] [stdout]      | |                                                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      | |                                                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  349 | |                 }
[INFO] [stdout]      | |                 -
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-channel-0.5.15/src/channel.rs:1150:1
[INFO] [stdout]      |
[INFO] [stdout] 1150 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `m0` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `resp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `pc` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `r` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/program/raydium/trading.rs:317:65
[INFO] [stdout]      |
[INFO] [stdout]  282 | /                 select! {
[INFO] [stdout]  283 | |                     recv(stop_rx) -> _ => {
[INFO] [stdout]  284 | |                         info!(target:"ray", pool=%pool_id.to_string(), "worker: stop signal");
[INFO] [stdout]  285 | |                         break;
[INFO] [stdout] ...    |
[INFO] [stdout]  288 | |                     recv(rx_state) -> m0 => {
[INFO] [stdout]      | |                                       --
[INFO] [stdout]      | |                                       |
[INFO] [stdout]      | |                                       `m0` calls a custom destructor
[INFO] [stdout]      | |                                       `m0` will be dropped later as of Edition 2024
[INFO] [stdout]  289 | |                         match m0 {
[INFO] [stdout]  290 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                `resp` calls a custom destructor
[INFO] [stdout]      | |                                `resp` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  296 | |                                             if let Ok(mut pc) = pool_cache.lock() {
[INFO] [stdout]      | |                                                       ------    -----------------
[INFO] [stdout]      | |                                                       |         |
[INFO] [stdout]      | |                                                       |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      | |                                                       |         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                                       `pc` calls a custom destructor
[INFO] [stdout]      | |                                                       `pc` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | |                     recv(rx_a) -> m1 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m1` calls a custom destructor
[INFO] [stdout]      | |                                   `m1` will be dropped later as of Edition 2024
[INFO] [stdout]  311 | |                         match m1 {
[INFO] [stdout]  312 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      | |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  317 | |                                             if let Ok(amount) = Self::unpack_token_amount(&owner_pk, &bytes) {
[INFO] [stdout]      | |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      | |                                                                 |
[INFO] [stdout]      | |                                                                 this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      | |                                                                 up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  318 | |                                                 if let Ok(mut r) = reserve_a.lock() {
[INFO] [stdout]      | |                                                           -----
[INFO] [stdout]      | |                                                           |
[INFO] [stdout]      | |                                                           `r` calls a custom destructor
[INFO] [stdout]      | |                                                           `r` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  322 | |                                         }
[INFO] [stdout]      | |                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...    |
[INFO] [stdout]  330 | |                     recv(rx_b) -> m2 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m2` calls a custom destructor
[INFO] [stdout]      | |                                   `m2` will be dropped later as of Edition 2024
[INFO] [stdout]  331 | |                         match m2 {
[INFO] [stdout]  332 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      | |                                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  338 | |                                                 if let Ok(mut r) = reserve_b.lock() {
[INFO] [stdout]      | |                                                           -----
[INFO] [stdout]      | |                                                           |
[INFO] [stdout]      | |                                                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      | |                                                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  349 | |                 }
[INFO] [stdout]      | |                 -
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]      |
[INFO] [stdout]  684 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]      |
[INFO] [stdout]  773 | impl Drop for Error {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-channel-0.5.15/src/channel.rs:1150:1
[INFO] [stdout]      |
[INFO] [stdout] 1150 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `m0` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `resp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `pc` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `r` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/program/raydium/trading.rs:338:68
[INFO] [stdout]      |
[INFO] [stdout]  282 | /                 select! {
[INFO] [stdout]  283 | |                     recv(stop_rx) -> _ => {
[INFO] [stdout]  284 | |                         info!(target:"ray", pool=%pool_id.to_string(), "worker: stop signal");
[INFO] [stdout]  285 | |                         break;
[INFO] [stdout] ...    |
[INFO] [stdout]  288 | |                     recv(rx_state) -> m0 => {
[INFO] [stdout]      | |                                       --
[INFO] [stdout]      | |                                       |
[INFO] [stdout]      | |                                       `m0` calls a custom destructor
[INFO] [stdout]      | |                                       `m0` will be dropped later as of Edition 2024
[INFO] [stdout]  289 | |                         match m0 {
[INFO] [stdout]  290 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                `resp` calls a custom destructor
[INFO] [stdout]      | |                                `resp` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  296 | |                                             if let Ok(mut pc) = pool_cache.lock() {
[INFO] [stdout]      | |                                                       ------    -----------------
[INFO] [stdout]      | |                                                       |         |
[INFO] [stdout]      | |                                                       |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      | |                                                       |         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                                       `pc` calls a custom destructor
[INFO] [stdout]      | |                                                       `pc` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | |                     recv(rx_a) -> m1 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m1` calls a custom destructor
[INFO] [stdout]      | |                                   `m1` will be dropped later as of Edition 2024
[INFO] [stdout]  311 | |                         match m1 {
[INFO] [stdout]  312 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      | |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  318 | |                                                 if let Ok(mut r) = reserve_a.lock() {
[INFO] [stdout]      | |                                                           -----
[INFO] [stdout]      | |                                                           |
[INFO] [stdout]      | |                                                           `r` calls a custom destructor
[INFO] [stdout]      | |                                                           `r` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  330 | |                     recv(rx_b) -> m2 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m2` calls a custom destructor
[INFO] [stdout]      | |                                   `m2` will be dropped later as of Edition 2024
[INFO] [stdout]  331 | |                         match m2 {
[INFO] [stdout]  332 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      | |                                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  338 | |                                                 if let Ok(mut r) = reserve_b.lock() {
[INFO] [stdout]      | |                                                           -----    ^^^^^^^^^^^^^^^^
[INFO] [stdout]      | |                                                           |        |
[INFO] [stdout]      | |                                                           |        this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      | |                                                           |        up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      | |                                                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      | |                                                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  341 | |                                             }
[INFO] [stdout]      | |                                             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...    |
[INFO] [stdout]  349 | |                 }
[INFO] [stdout]      | |                 -
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-channel-0.5.15/src/channel.rs:1150:1
[INFO] [stdout]      |
[INFO] [stdout] 1150 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `m0` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `resp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `pc` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `r` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/program/raydium/trading.rs:337:65
[INFO] [stdout]      |
[INFO] [stdout]  282 | /                 select! {
[INFO] [stdout]  283 | |                     recv(stop_rx) -> _ => {
[INFO] [stdout]  284 | |                         info!(target:"ray", pool=%pool_id.to_string(), "worker: stop signal");
[INFO] [stdout]  285 | |                         break;
[INFO] [stdout] ...    |
[INFO] [stdout]  288 | |                     recv(rx_state) -> m0 => {
[INFO] [stdout]      | |                                       --
[INFO] [stdout]      | |                                       |
[INFO] [stdout]      | |                                       `m0` calls a custom destructor
[INFO] [stdout]      | |                                       `m0` will be dropped later as of Edition 2024
[INFO] [stdout]  289 | |                         match m0 {
[INFO] [stdout]  290 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                `resp` calls a custom destructor
[INFO] [stdout]      | |                                `resp` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  296 | |                                             if let Ok(mut pc) = pool_cache.lock() {
[INFO] [stdout]      | |                                                       ------    -----------------
[INFO] [stdout]      | |                                                       |         |
[INFO] [stdout]      | |                                                       |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      | |                                                       |         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                                       `pc` calls a custom destructor
[INFO] [stdout]      | |                                                       `pc` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | |                     recv(rx_a) -> m1 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m1` calls a custom destructor
[INFO] [stdout]      | |                                   `m1` will be dropped later as of Edition 2024
[INFO] [stdout]  311 | |                         match m1 {
[INFO] [stdout]  312 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      | |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  318 | |                                                 if let Ok(mut r) = reserve_a.lock() {
[INFO] [stdout]      | |                                                           -----
[INFO] [stdout]      | |                                                           |
[INFO] [stdout]      | |                                                           `r` calls a custom destructor
[INFO] [stdout]      | |                                                           `r` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  330 | |                     recv(rx_b) -> m2 => {
[INFO] [stdout]      | |                                   --
[INFO] [stdout]      | |                                   |
[INFO] [stdout]      | |                                   `m2` calls a custom destructor
[INFO] [stdout]      | |                                   `m2` will be dropped later as of Edition 2024
[INFO] [stdout]  331 | |                         match m2 {
[INFO] [stdout]  332 | |                             Ok(resp) => {
[INFO] [stdout]      | |                                ----
[INFO] [stdout]      | |                                |
[INFO] [stdout]      | |                                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      | |                                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  337 | |                                             if let Ok(amount) = Self::unpack_token_amount(&owner_pk, &bytes) {
[INFO] [stdout]      | |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      | |                                                                 |
[INFO] [stdout]      | |                                                                 this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      | |                                                                 up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  338 | |                                                 if let Ok(mut r) = reserve_b.lock() {
[INFO] [stdout]      | |                                                           -----
[INFO] [stdout]      | |                                                           |
[INFO] [stdout]      | |                                                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      | |                                                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  342 | |                                         }
[INFO] [stdout]      | |                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...    |
[INFO] [stdout]  349 | |                 }
[INFO] [stdout]      | |                 -
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |_________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
[INFO] [stdout]      |
[INFO] [stdout]  684 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/error.rs:773:1
[INFO] [stdout]      |
[INFO] [stdout]  773 | impl Drop for Error {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-channel-0.5.15/src/channel.rs:1150:1
[INFO] [stdout]      |
[INFO] [stdout] 1150 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `m0` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `resp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `pc` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `r` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `m2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/identifier.rs:244:1
[INFO] [stdout]      |
[INFO] [stdout]  244 | impl Drop for Identifier {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating examples/api_test.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 03s
[INFO] [stderr] crater-edition-check: sugar-money v0.1.38 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking sugar-money v0.1.38 (/opt/rustwide/workdir)
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/program/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub use types::*;
[INFO] [stdout]    |         -------- but the name `InstructionBumps` in the type namespace is also re-exported here
[INFO] [stdout] 10 | pub use client::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `InstructionBumps` in the type namespace is first re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/program/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub use types::*;
[INFO] [stdout]    |         -------- but the name `InstructionBumps` in the type namespace is also re-exported here
[INFO] [stdout] 10 | pub use client::*;
[INFO] [stdout]    |         ^^^^^^^^^ the name `InstructionBumps` in the type namespace is first re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sdk_id` is never read
[INFO] [stdout]   --> src/api/client.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SugarMoneyApi {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     sdk_id: Option<String>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_zero_to_none` is never used
[INFO] [stdout]  --> src/raydium_cp_swap/curve/calculator.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn map_zero_to_none(x: u128) -> Option<u128> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RoundDirection` is never used
[INFO] [stdout]   --> src/raydium_cp_swap/curve/calculator.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum RoundDirection {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TradingTokenResult` is never constructed
[INFO] [stdout]   --> src/raydium_cp_swap/curve/calculator.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct TradingTokenResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `validate_supply` and `lp_tokens_to_trading_tokens` are never used
[INFO] [stdout]    --> src/raydium_cp_swap/curve/calculator.rs:83:12
[INFO] [stdout]     |
[INFO] [stdout]  82 | impl CurveCalculator {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout]  83 |     pub fn validate_supply(token_0_amount: u64, token_1_amount: u64) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn lp_tokens_to_trading_tokens(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `lp_tokens_to_trading_tokens` is never used
[INFO] [stdout]   --> src/raydium_cp_swap/curve/constant_product.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl ConstantProductCurve {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn lp_tokens_to_trading_tokens(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AMM_CONFIG_SEED` is never used
[INFO] [stdout]  --> src/raydium_cp_swap/states/config.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const AMM_CONFIG_SEED: &str = "amm_config";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POOL_SEED` is never used
[INFO] [stdout]  --> src/raydium_cp_swap/states/pool.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const POOL_SEED: &str = "pool";
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POOL_LP_MINT_SEED` is never used
[INFO] [stdout]   --> src/raydium_cp_swap/states/pool.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const POOL_LP_MINT_SEED: &str = "pool_lp_mint";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POOL_VAULT_SEED` is never used
[INFO] [stdout]   --> src/raydium_cp_swap/states/pool.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const POOL_VAULT_SEED: &str = "pool_vault";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DownCast` is never used
[INFO] [stdout]   --> src/raydium_cp_swap/utils/math.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub trait DownCast {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sdk_id` is never read
[INFO] [stdout]   --> src/api/client.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SugarMoneyApi {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     sdk_id: Option<String>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_zero_to_none` is never used
[INFO] [stdout]  --> src/raydium_cp_swap/curve/calculator.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn map_zero_to_none(x: u128) -> Option<u128> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RoundDirection` is never used
[INFO] [stdout]   --> src/raydium_cp_swap/curve/calculator.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum RoundDirection {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TradingTokenResult` is never constructed
[INFO] [stdout]   --> src/raydium_cp_swap/curve/calculator.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct TradingTokenResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `validate_supply` and `lp_tokens_to_trading_tokens` are never used
[INFO] [stdout]    --> src/raydium_cp_swap/curve/calculator.rs:83:12
[INFO] [stdout]     |
[INFO] [stdout]  82 | impl CurveCalculator {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout]  83 |     pub fn validate_supply(token_0_amount: u64, token_1_amount: u64) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn lp_tokens_to_trading_tokens(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `lp_tokens_to_trading_tokens` is never used
[INFO] [stdout]   --> src/raydium_cp_swap/curve/constant_product.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl ConstantProductCurve {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn lp_tokens_to_trading_tokens(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AMM_CONFIG_SEED` is never used
[INFO] [stdout]  --> src/raydium_cp_swap/states/config.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const AMM_CONFIG_SEED: &str = "amm_config";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POOL_SEED` is never used
[INFO] [stdout]  --> src/raydium_cp_swap/states/pool.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const POOL_SEED: &str = "pool";
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POOL_LP_MINT_SEED` is never used
[INFO] [stdout]   --> src/raydium_cp_swap/states/pool.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const POOL_LP_MINT_SEED: &str = "pool_lp_mint";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POOL_VAULT_SEED` is never used
[INFO] [stdout]   --> src/raydium_cp_swap/states/pool.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const POOL_VAULT_SEED: &str = "pool_vault";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DownCast` is never used
[INFO] [stdout]   --> src/raydium_cp_swap/utils/math.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub trait DownCast {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 12s
[INFO] [stderr] crater-edition-check all packages now at latest edition
[INFO] [stderr] crater-edition-check: all finished
[INFO] running `Command { std: "docker" "inspect" "06ebf6e7844f24f18e47440c61638fe03a825b23c02cc5d2cdcd2027d4dcdc26", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "06ebf6e7844f24f18e47440c61638fe03a825b23c02cc5d2cdcd2027d4dcdc26", kill_on_drop: false }`
[INFO] [stdout] 06ebf6e7844f24f18e47440c61638fe03a825b23c02cc5d2cdcd2027d4dcdc26
